"""
用二分法查找升序排序的100个随机整数(1~100)数列中某个数并输出其位置。

提示：二分法是一种快速查找的方法，时间复杂度低，逻辑简单易懂，就是不断地找出中间值，用中间值对比查找的值；若中间值大，则继续在左侧查找；若中间值小，则继续在右侧查找。
"""
import random


def random_100(amout):
    li = []
    for i in range(amout):
        s = random.randint(0, amout)
        li.append(s)
    return li


lst = sorted(random_100(100))
print(lst)


# 定义函数
def func(n, lst, left=0, right=None):
    if right == None:
        right = len(lst) - 1
    if left < right:
        mid = (left + right) // 2
        if n < lst[mid]:
            right = mid - 1
        elif n > lst[mid]:
            left = mid + 1
        else:
            print('你输入的数在这个列表中,它的位置{}\n'.format(mid))
            return True
            return func(n, lst, left, right)
    else:
        print('你输入的数不在这个列表中\n')
        return False
while True:
    n = int(input('请输入你要查找的数:'))
    func(n, lst)
